package com.chengh.nami.core.annotation;

import com.chengh.nami.common.enums.system.BusinessType;
import com.chengh.nami.common.enums.system.OperatorType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 操作日志的注解
 * Target({ElementType.METHOD}) 注解作用于方法级别
 * Retention(RetentionPolicy.RUNTIME) 运行时起作用
 *
 * @author chenghang
 */

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME) //运行时起作用
public @interface SysLog {
    /**
     * 模块
     */
    String title() default "";

    /**
     * 功能
     */
    BusinessType businessType() default BusinessType.OTHER;

    /**
     * 操作人类别
     */
    OperatorType operatorType() default OperatorType.MANAGE;

    /**
     * 是否保存请求的参数
     */
    boolean isSaveRequestData() default true;

    /**
     * 是否保存响应的参数
     */
    boolean isSaveResponseData() default true;

    /**
     * 排除指定的请求参数
     */
    String[] excludeParamNames() default {};
}
